One or more aspects relate, in general, to input/output (I/O) communications, and in particular, to processing of input/output operations transmitted via input/output communication devices.
One example of input/output communication devices are channels. Channels may be implemented in cards that connect to a computing system via one or more I/O links. For instance, IBM Z, offered by International Business Machines Corporation, Armonk, N.Y., provide channels that are implemented in cards that connect to an IBM Z Central Electronics Complex (CEC) via a Peripheral Component Interconnect express (PCIe) link, as examples. These channels are used to access main memory within the Central Electronics Complex.
The access path to/from main memory for channels providing extended connectivity to storage and local area networks typically crosses many components. Each component crossing results in additional latency for memory accesses flowing to/from these types of devices.
When an I/O operation is performed, it often involves strings of individual single memory accesses which are to be processed in strict sequence relative to one another. In many cases, the external I/O device (e.g., channel) is to wait for the completion of each memory access before initiating the next. When such strings of serialized memory accesses are to be executed for a single I/O operation, the overall latency for the sequence of round trips between the channel and memory can add significant latency to the I/O operation.